package rpcx_media_router_centre

import "time"

//MediaCentreConfig 媒体中心信息
type MediaCentreConfig struct {
	//媒体中心ID
	MscId string `gorm:"primaryKey;comment:媒体中心ID"`

	MscName       string `gorm:"comment:媒体名称"`
	MscDomainName string `gorm:"comment:媒体领域名称"`

	IsStructureCentre bool `gorm:"default:0;comment:是否是结构化中心"`
	//媒体中心所在城市
	MscCity string `gorm:"comment:媒体中所在城市"`
	//是否是推流动态端口
	IsDynamicStatePort bool `gorm:"default:0;comment:是否是推流动态端口"`
	//推流起始端口 默认:10000
	MscPushStreamStartPort int64 `gorm:"default:10000;comment:推流起始端口, 默认:10000, 总数500"`
	//推流端口数量
	MscPushStreamPortCount int64 `gorm:"default:500;comment:推流端口数量,数量500"`

	//TODO 需要添加 FLV 端口 ;  Protocols 转移 支持协议类型
	//支持协议类型
	Protocols string `gorm:"comment:支持协议类型" `

	//k8s DNS的url MscUrl
	MscK8sDnsUrl string
	//媒体中心地址
	IP string `gorm:"comment:媒体中心地址"`
	//媒体中心端口
	ThriftPort int64 `gorm:"default:9091;comment:媒体中心端口" `
	//Rtsp协议端口
	RtspPort int64 `gorm:"default:554;comment:Rtsp协议端口" `
	//Rtmp协议端口
	RtmpPort int64 `gorm:"default:1935;comment:Rtmp协议端口" `
	//HLS协议端口 TODO 确定HLS协议默认端口
	HLSPort int64 `gorm:"default:0;comment:HLS协议端口" `
	//webRTC协议端口 TODO 确定WebRTC协议默认端口
	WebRTCPort int64 `gorm:"default:0;comment:webRTC协议端口" `
	//http端口
	MscHttpPort int64 `gorm:"default:80;comment:MscHttp端口" `
	//http端口
	HttpPort int64 `gorm:"default:80;comment:http端口" `

	//是否安全接入
	IsSafeConn bool `gorm:"default:0;comment:设备是否安全接入"`
	//外网映射 媒体中心地址
	NatMscPushStreamStartIP string `gorm:"comment:外网映射媒体中心地址" `
	//外网映射 推流起始端口 默认:10000
	NatMscPushStreamStartPort int64 `gorm:"default:10000;comment:外网映射推流起始端口, 默认:10000, 总数500"`
	////外网映射 推流端口数量
	//NatMscPushStreamPortCount int64 `gorm:"default:500;comment:外网映射推流端口数量,数量500"`
	Source string `gorm:"comment:媒体中心地址" `
	//部署时间
	DeployTimestamp int64 `gorm:"default:0;comment:部署时间" `
	//最后启动时间
	StartTimestamp int64 `gorm:"default:0;comment:最后启动时间" `
	//最后更新时间
	UpdateTimestamp int64 `gorm:"default:0;comment:最后更新时间" `
	//状态
	Online bool `gorm:"comment:状态" `
}

//StreamInfo 流信息
type StreamInfo struct {
	ID         uint   `gorm:"primaryKey"`
	StreamID   string `gorm:"index;comment:流ID"`
	MediaID    string `gorm:"comment:媒体中心ID" `
	DeviceID   string `gorm:"comment:设备ID"`
	ChannelID  int64  `gorm:"comment:通道ID"`
	DeviceCity string

	TotalReaderCount int64 `gorm:"comment:视频流观看人数" `
	//视频流回收次数:默认10次 以上进行回收: 回收延迟时间 = 次数 * 定时回收时间
	RecyclingNumber int64 `gorm:"comment:视频流回收次数:默认10次 以上进行回收: 回收延迟时间 = 次数 * 定时回收时间 "`
	IsHistoryPlay   bool  `gorm:"comment:是否历史视频"`
	IsMergeStream   bool  `gorm:"comment:是否视频合流"`

	RtmpStreamUrl   string
	WsFlvStreamUrl  string
	ParentDeviceID  string
	ParentChannelID int64

	UserCity          string `gorm:"index;comment:用户城市"`
	MediaServerHost   string
	ThriftPort        int64
	MscPushStreamPort int64 //静态推流端口
	RtcpPort          int64
	RtpPort           int64
	HttpPort          int64
	AppID             string

	Created time.Time
	Updated time.Time
}
